package com.CST.service.cb;

import com.CST.common.api.ResultObject;
import com.CST.dto.cb.BaseCostDTO;
import com.CST.dto.cb.DateDTO;
import com.CST.entity.cb.BaseCost;
import com.CST.entity.cb.CostDataInfo;
import com.CST.vo.cb.DeptBaseCostVO;
import com.CST.vo.cb.ReportBusinessVO;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public interface IBaseCostService {
    ResultObject getAllBaseCostByDate(DateDTO dateDTO);

    ResultObject listBaseCostGroupDept(DateDTO dateDTO);

    ResultObject listBaseCostDeptByDate(DateDTO dateDTO);

    ResultObject listBaseCostByPDeptCode(DateDTO dateDTO, String pDeptCode);

    ResultObject listCostByPDeptCodeAndUnitCode(DateDTO dateDTO, String pDeptCode);

    ResultObject listMaterialsCategorySummary(DateDTO dateDTO, String deptCode);

    ResultObject listCostInfoByPDeptCodeAndUnitCode(DateDTO dateDTO, String pDeptCode);

    ResultObject listCostByDeptCodeAndUnitCode(DateDTO dateDTO, String deptCode);

    ResultObject listBaseCostWithCostItem(DateDTO dateDTO);

    ResultObject listCostWithPDept(DateDTO dateDTO);

    ResultObject listCostWithDept(DateDTO dateDTO);

    void insertBaseCost(CostDataInfo costDataInfo);

    void insertBaseCostDel(CostDataInfo costDataInfo);


    List<BaseCost> listBaseCost(CostDataInfo costDataInfo);

    boolean saveOrUpdateBaseCost(BaseCostDTO dto);

    boolean removeBaseCost(long id,int year);

    /**
     * 科室经营分析
     * @param dateDTO
     * @param pDeptCode
     * @return
     */
    List<ReportBusinessVO> listCostAndInComeByPDept(DateDTO dateDTO, String pDeptCode);

    /**
     * 导出
     * @param response http
     * @param dateDTO 时间条件
     */
    void exportExcel(HttpServletResponse response,DateDTO dateDTO);

    /**
     * 按科室完全导出
     *
     * @param response http
     * @param dateDTO 时间
     * @param pDeptCode 科室
     */
    void exportExcelDepartment(HttpServletResponse response,DateDTO dateDTO,String pDeptCode) throws IOException;

    /**
     * 导出
     * @param response
     */
    void exportExcel5(HttpServletResponse response, DateDTO dateDTO) throws IOException;

    /**
     * 导出
     * @param response
     */
    void exportExcel7(HttpServletResponse response, DateDTO dateDTO) throws IOException;

    /**
     * 导出
     * @param response
     */
    void exportExcel8(HttpServletResponse response, DateDTO dateDTO) throws IOException;
    void exportExcel10(HttpServletResponse response, DateDTO dateDTO) throws IOException;
    void exportExcel10(HttpServletResponse response, DateDTO dateDTO,String pDeptCode,String deptCode) throws IOException;

    void exportExcel11(HttpServletResponse response,DateDTO dateDTO);
    List<DeptBaseCostVO>  getDeptBaseCost(DateDTO dateDTO);





}
